package org.lc.stk.service.question;

import java.util.List;

import org.lc.stk.model.question.attrs.QuestionType;

public interface QuestionTypeService {
    
    /**
     * 创建题型
     */
    QuestionType create(QuestionType questionType);

    /**
     * 更新题型
     */
    QuestionType update(QuestionType questionType);

    /**
     * 删除题型
     */
    void delete(Long id);

    /**
     * 根据ID获取题型
     */
    QuestionType findById(Long id);

    /**
     * 获取所有题型
     */
    List<QuestionType> findAll();

    /**
     * 检查名称是否存在
     */
    boolean existsByName(String name, Long excludeId);

    /**
     * 获取所有系统内置题型
     */
    List<QuestionType> findAllSystemTypes();

    /**
     * 获取所有用户自定义题型
     */
    List<QuestionType> findAllUserDefinedTypes();

    /**
     * 根据题型列表检查是否全部存在
     */
    boolean existsAll(List<Long> ids);
}